/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Mercado.model;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author rafael
 */
public class Cliente {
    private String nome, endereco, telefone;
    private List<Compra> compras;
    
    public Cliente(String nome, String endereco, String telefone){
        this.nome = nome;
        this.endereco = endereco;
        this.telefone = telefone;
        this.compras = new ArrayList<>();
    }
    
    public void novaCompra(){
        this.compras.add(new Compra());
    }
    
    public void addCompra(Compra com){
        this.compras.add(com);
    }
    
    public Estoque manipulaCompra(String op, Estoque e, Produto p, float qtd){
        Compra c = compras.get(compras.size()-1);
        if(op.equals("ADD")){
            if(e.removeItemQtd(p.getCodigo(),qtd)){
                c.addItem(p, qtd);
            }
        }
        else if (op.equals("REM")){
            e.adicionaProduto(p, qtd);
            c.remItem(p.getCodigo());
        }
        else if (op.equals("END")){
            c.finalizaCompra();
        }
        else if (op.equals("CAN") && !c.isFinalizada()){
            while(c.getTotalItens()>0){
                e.adicionaProduto(c.getItem(0), c.getQtd(0));
                compras.remove(c);
            }
        }
        return e;
    }
    
    
    public Compra getCompra(int i){
        if (i==-1){
            if (compras.size()>0)
                return compras.get(compras.size()-1);
            else
                return null;
        }else
            return compras.get(i);
    }
    
    public List<Compra> getCompras(){
        return compras;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @return the endereco
     */
    public String getEndereco() {
        return endereco;
    }

    /**
     * @return the telefone
     */
    public String getTelefone() {
        return telefone;
    }
    
    public int getQtdCompras(){
        return compras.size();
    }
}
